<?php
// 实现数据库的封装
//面向过程类型

/**
 * 获取数据库连接对象，返回数据连接
 * @return mysqli $conn 连接对象
 */

function get_conn()
{

  $conn = mysqli_connect(
    "127.0.0.1",
    "root",
    "",
    "bbs",
    3308
  );

  if (!$conn) {
    die("数据库连接失败" . mysqli_connect_error());
  }

  //设置数据库的字符集
  mysqli_query($conn, "set names 'utf8'");
  //返回连接对象
  return $conn;
}


/**
 * 执行select语句返回二维数组
 * @param string $sql sql语句
 * @return array $arr 二维数组
 */
function exec_select($sql)
{
  // echo $sql;
  $conn = get_conn();
  $result = mysqli_query($conn, $sql);
  //处理结果集，返回二维数组
  $arr = array();
  foreach ($result as $row) {
    $arr[] = $row;
  }
  // var_dump($arr);
  //关闭连接
  mysqli_close($conn);
  return $arr;
}


/**
 * 执行insert/update/delete语句返回受影响函数
 * @param string $sql sql语句
 * @return int $num 受影响行数
 */
function exec_update($sql)
{
  $conn = get_conn();
  mysqli_query($conn, $sql);
  //获取受影响行数
  $num = mysqli_affected_rows($conn);
  mysqli_close($conn);
  return $num;
}


//获得记录的id
function getId($sql)
{
  $conn = get_conn();
  if (mysqli_query($conn, $sql)) {
    return mysqli_insert_id($conn);
  } else {
    return false;
  }
}
?>